.loading-spinner {
  display: flex;
  align-items: center;
  justify-content: center;
  &.centered {
    margin: 120px auto;

    &.small-padding {
      margin: 60px auto;
    }
  }

  &.mobile-view {
    align-self: center;
    margin: initial;
    height: 100vh;
  }

  &.include-container {
    background-color: $core-fleet-white;
    box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    width: 48px;
    height: 48px;
  }

  .loader {
    position: relative;
    margin: 0 auto;

    &:before {
      content: "";
      display: block;
      padding-top: 100%;
    }
  }

  &.medium {
    .loader {
      width: 34px;
    }
  }

  &.small {
    .loader {
      width: 23px;
    }
  }

  &.x-small {
    .loader {
      width: 16px;
    }
  }

  &.button {
    background: none;
    position: absolute;
    width: auto;
    height: auto;
    top: auto;
    box-shadow: none;
    z-index: 9;
    margin: 0;
    padding: 0;
    &.white {
      .path {
        stroke: $core-fleet-white;
      }
    }
    .loader {
      width: 23px;
    }
    .background {
      display: none;
    }
  }

  .circular {
    animation: rotate 2s linear infinite;
    height: 100%;
    transform-origin: center center;
    width: 100%;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
  }

  .path {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
    stroke: $core-fleet-green;
    animation: dash 1.5s ease-in-out infinite;
    stroke-linecap: round;
  }

  .background {
    stroke: $ui-fleet-black-25;
  }

  @keyframes rotate {
    100% {
      transform: rotate(360deg);
    }
  }

  @keyframes dash {
    0% {
      stroke-dasharray: 1, 200;
      stroke-dashoffset: 0;
    }

    50% {
      stroke-dasharray: 89, 200;
      stroke-dashoffset: -35px;
    }

    100% {
      stroke-dasharray: 89, 200;
      stroke-dashoffset: -124px;
    }
  }
}
